/*****************************************************************************
 * $LastChangedDate: 2011-09-20 22:43:09 -0400 (Tue, 20 Sep 2011) $
 * @file
 * @author  Jim E. Brooks  http://www.palomino3d.org
 * @brief   Definitions, constants.
 * @remarks defs.hh should have generic defs only.
 *//*
 * LEGAL:   COPYRIGHT (C) 2004 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
 *****************************************************************************/

#ifndef BASE_DEFS_HH
#define BASE_DEFS_HH 1

namespace base {
namespace defs {

////////////////////////////////////////////////////////////////////////////////
// Definitions, constants.
#define KILOBYTE (1024u)
#define MEGABYTE (1048576u)
#define GIGABYTE (1073741824u)
#define THOUSAND (1000)
#define MILLION  (1000000)
#define CHAR_LF '\n'
#define CHAR_CR '\r'
const bool DISABLE = false, ENABLE = true;
const bool FORCE = true;

////////////////////////////////////////////////////////////////////////////////
// Numeric limits:
// Use std min()/max() defined in <limits>.
// int val = std::numeric_limits<int>::min();

////////////////////////////////////////////////////////////////////////////////
// @def Misc limits.
const uint MAX_ELEMS = 128 * MEGABYTE;  ///< maximum array elements

/// @def ILLEGAL_PTR
/// ILLEGAL_PTR is a non-zero value for initializing/asserting pointers
/// that normally can hold either a non-NULL or NULL address.
#define ILLEGAL_PTR ((void*)13)  ///< an unlucky address in the faulty zero page

} // namespace defs
} // namespace base

using namespace base::defs;

#endif // BASE_DEFS_HH
